home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / The GIMP 2.2.8 / gimp-2.2.8-i586-setup.exe / {app} / share / gimp / 2.0 / scripts / chrome-logo.scm < prev    next >
Encoding:
GIMP Script-Fu Script  |  2005-06-30  |  4.5 KB  |  120 lines

  1. ;  CHROME-LOGOS
  2.  
  3. (define (apply-chrome-logo-effect img
  4.                   logo-layer
  5.                   offsets
  6.                   bg-color)
  7.   (let* ((offx1 (* offsets 0.4))
  8.      (offy1 (* offsets 0.3))
  9.      (offx2 (* offsets (- 0.4)))
  10.      (offy2 (* offsets (- 0.3)))
  11.      (feather (* offsets 0.5))
  12.      (width (car (gimp-drawable-width logo-layer)))
  13.      (height (car (gimp-drawable-height logo-layer)))
  14.      (layer1 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 1" 100 DIFFERENCE-MODE)))
  15.      (layer2 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 2" 100 DIFFERENCE-MODE)))
  16.      (layer3 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 3" 100 NORMAL-MODE)))
  17.      (shadow (car (gimp-layer-new img width height RGBA-IMAGE "Drop Shadow" 100 NORMAL-MODE)))
  18.      (background (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  19.      (layer-mask (car (gimp-layer-create-mask layer1 ADD-BLACK-MASK))))
  20.  
  21.     (gimp-context-push)
  22.  
  23.     (script-fu-util-image-resize-from-layer img logo-layer)
  24.     (gimp-image-add-layer img background 1)
  25.     (gimp-image-add-layer img shadow 1)
  26.     (gimp-image-add-layer img layer3 1)
  27.     (gimp-image-add-layer img layer2 1)
  28.     (gimp-image-add-layer img layer1 1)
  29.     (gimp-context-set-background '(255 255 255))
  30.     (gimp-selection-none img)
  31.     (gimp-edit-fill layer1 BACKGROUND-FILL)
  32.     (gimp-edit-fill layer2 BACKGROUND-FILL)
  33.     (gimp-edit-fill layer3 BACKGROUND-FILL)
  34.     (gimp-edit-clear shadow)
  35.     (gimp-selection-layer-alpha logo-layer)
  36.     (gimp-drawable-set-visible logo-layer FALSE)
  37.     (gimp-drawable-set-visible shadow FALSE)
  38.     (gimp-drawable-set-visible background FALSE)
  39.     (gimp-context-set-background '(0 0 0))
  40.     (gimp-edit-fill layer1 BACKGROUND-FILL)
  41.     (gimp-selection-translate img offx1 offy1)
  42.     (gimp-selection-feather img feather)
  43.     (gimp-edit-fill layer2 BACKGROUND-FILL)
  44.     (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
  45.     (gimp-edit-fill layer3 BACKGROUND-FILL)
  46.     (gimp-selection-none img)
  47.     (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
  48.     (gimp-invert layer1)
  49.     (gimp-layer-add-mask layer1 layer-mask)
  50.     (gimp-selection-layer-alpha logo-layer)
  51.     (gimp-context-set-background '(255 255 255))
  52.     (gimp-selection-feather img feather)
  53.     (gimp-edit-fill layer-mask BACKGROUND-FILL)
  54.     (gimp-context-set-background '(0 0 0))
  55.     (gimp-selection-translate img offx1 offy1)
  56.     (gimp-edit-fill shadow BACKGROUND-FILL)
  57.     (gimp-selection-none img)
  58.     (gimp-context-set-background bg-color)
  59.     (gimp-edit-fill background BACKGROUND-FILL)
  60.     (gimp-drawable-set-visible shadow TRUE)
  61.     (gimp-drawable-set-visible background TRUE)
  62.     (gimp-drawable-set-name layer1 (car (gimp-drawable-get-name logo-layer)))
  63.     (gimp-image-remove-layer img logo-layer)
  64.  
  65.     (gimp-context-pop)))
  66.  
  67. (define (script-fu-chrome-logo-alpha img
  68.                      logo-layer
  69.                      offsets
  70.                      bg-color)
  71.   (begin
  72.     (gimp-image-undo-group-start img)
  73.     (apply-chrome-logo-effect img logo-layer offsets bg-color)
  74.     (gimp-image-undo-group-end img)
  75.     (gimp-displays-flush)))
  76.  
  77. (script-fu-register "script-fu-chrome-logo-alpha"
  78.             _"C_hrome..."
  79.             "Somewhat simplistic, but cool chromed logos"
  80.             "Spencer Kimball"
  81.             "Spencer Kimball & Peter Mattis"
  82.             "1997"
  83.             "RGBA"
  84.                     SF-IMAGE       "Image"                0
  85.                     SF-DRAWABLE    "Drawable"             0
  86.             SF-ADJUSTMENT _"Offsets (pixels * 2)" '(10 2 100 1 10 0 1)
  87.             SF-COLOR      _"Background Color"     '(191 191 191))
  88.  
  89. (script-fu-menu-register "script-fu-chrome-logo-alpha"
  90.              _"<Image>/Script-Fu/Alpha to Logo")
  91.  
  92.  
  93. (define (script-fu-chrome-logo text
  94.                    size
  95.                    font
  96.                    bg-color)
  97.   (let* ((img (car (gimp-image-new 256 256 RGB)))
  98.      (b-size (* size 0.2))
  99.      (text-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font))))
  100.     (gimp-image-undo-disable img)
  101.     (gimp-drawable-set-name text-layer text)
  102.     (apply-chrome-logo-effect img text-layer (* size 0.1) bg-color)
  103.     (gimp-image-undo-enable img)
  104.     (gimp-display-new img)))
  105.  
  106. (script-fu-register "script-fu-chrome-logo"
  107.             _"C_hrome..."
  108.             "Somewhat simplistic, but cool chromed logos"
  109.             "Spencer Kimball"
  110.             "Spencer Kimball & Peter Mattis"
  111.             "1997"
  112.             ""
  113.             SF-STRING     _"Text"               "The GIMP"
  114.             SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
  115.             SF-FONT       _"Font"               "Bodoni"
  116.             SF-COLOR      _"Background color"   '(191 191 191))
  117.  
  118. (script-fu-menu-register "script-fu-chrome-logo"
  119.              _"<Toolbox>/Xtns/Script-Fu/Logos")
  120.